package com.fruit.service.order;

import java.util.List;
import java.util.Map;

import com.fruit.pojo.order.MailOrder;

/**
 * 
 * 寄回订单接口类
 *
 * @author shibeilei
 * @version 2017.12.01 16:54
 *
 */
public interface MailOrderManager {
	
	/**
	 * 寄回订单列表
	 * @param tradeId 全局ID
	 * @param params 参数
	 * @return 返回寄回订单列表
	 */
	Map<String, Object> getMailOrderList(String tradeId, Map<String, Object> params);
	
	/**
	 * 修改寄回订单地址
	 * @param tradeId 
	 * @param params 
	 * @return 返回修改结果
	 */
	Map<String, Object> updateMailOrderAddress(String tradeId, Map<String, Object> params);
	
	/**
	 * 寄回订单
	* @author 葛欢欢
	* @version 2017.11.30 16:40 
	* @param tradeId tradeId
	* @param params params 
	* @return 返回寄回订单
	 */
	List<MailOrder> getMailOrder(String tradeId, Map<String, Object> params);
	
	/**
	 * 通过基地ID获取邮寄订单列表
	 * @param tradeId 
	 * @param params 
	 * @return 返回邮寄订单列表
	 */
	Map<String, Object> getMailOrderListByBaseId(String tradeId, Map<String, Object> params);
	
	/**
	 * 通过基地ID获取异常订单列表
	 * @param tradeId 
	 * @param params 
	 * @return 返回异常订单列表
	 */
	Map<String, Object> getErrorMailOrderListByBaseId(String tradeId, Map<String, Object> params);
	
	/**
	 * 检测寄回订单是否能合并
	 * @param tradeId 
	 * @param params 
	 * @return 返回检测结果
	 */
	Map<String, Object> checkMailOrder(String tradeId, Map<String, Object> params);
	
	/**
	 * 查看物流清单
	 * @param tradeId 
	 * @param params 
	 * @return 返回结果
	 */
	Map<String, Object> getLogisticsListByMailOrder(String tradeId, Map<String, Object> params);
	
	/**
	 * 呼叫物流并保存物流订单
	 * @param tradeId 
	 * @param params 
	 * @return 返回结果
	 */
	Map<String, Object> saveMailLogisticsOrder(String tradeId, Map<String, Object> params);
	
	/**
	 * 寄回订单详情
	 * @param tradeId 
	 * @param id 
	 * @return 返回结果
	 */
	Map<String, Object> getMailOrderInfo(String tradeId, long id);
	
	/**
	 * 物流列表
	 * @param tradeId 
	 * @param params 
	 * @return 返回物流列表
	 */
	Map<String, Object> getLogisticsOrderList(String tradeId, Map<String, Object> params);
	
	/**
	 * 物流订单详情
	 * @param tradeId 
	 * @param code 
	 * @return 返回物流订单详情
	 */
	Map<String, Object> getLogisticsOrderInfo(String tradeId, String code);
	
	/**
	 * 返回有效物流
	 * @param tradeId 
	 * @param mailOrder 
	 * @return 返回有效物流
	 */
	Map<String, Object> getLogisticsDoList(String tradeId, MailOrder mailOrder);
	
	/**
	 * 返回有效物流
	 * @param tradeId 
	 * @param baseId 
	 * @param addressId 
	 * @return 返回有效物流
	 */
	Map<String, Object> getLogisticsDoList(String tradeId, int baseId, int addressId);
	
	/**
	 * 通过基地ID返回订单数量
	 * @param baseId 
	 * @return 订单数量
	 */
	Map<String, Object> getAllDeliverStateNum(int baseId);
	
}
